"""
Diese Klasse erstellt ein Log-File

@author: Max
"""

from time import localtime, strftime

class Log(object):
    """
    Diese Klasse ist verantwortlich fuer die Erstellung eines Log-Files.
    """
    def __init__(self, path):
        try:
            self.strPath = path
            self.fFile = self.openLogFile(self.strPath, "w")
        except:
            print("Log: Konnte nicht erstellt werden.")
            
    def openLogFile(self, path, access):
        """
        Oeffnen eines vorhandenen Log-Files. Ist keines vorhanden wird eines erstellt.
        @param path: Pfad zur .log-Datei
        @param access: Lese -oder Schreibberechtigung.
        """
        return open(path, access)
        
    def printToLog(self, string):
        """
        Speichert einen uebergebenen String in einer .log-Datei und gib diesen String anschliessend auf der Konsole aus.
        @param string: String, der in der Log gespeichert wird.
        """
        timeNow = strftime("%H:%M:%S: ", localtime())
        self.fFile.write(timeNow + string + "\n")
        
        print(timeNow + string)
        
        self.closeLogFile()
        self.fFile = self.openLogFile(self.strPath, "a")
        
    def closeLogFile(self):
        """
        Schliessen der Datei nach erfolgreichem Eintrag.
        """
        self.fFile.close()